import request from '@/utils/request'

/**
 * 上传文件
 * 用于上传课程封面图片、内容图片等文件到服务器
 * 支持的文件类型包括图片、文档等
 * 
 * @param {File} file - 要上传的文件对象，必须是有效的 File 对象
 * @param {string} [fileType='image'] - 文件类型，默认为'image'，可选值：
 *   - 'image': 图片文件
 *   - 'document': 文档文件
 *   - 'video': 视频文件
 *   - 'audio': 音频文件
 * @returns {Promise<Object>} - 返回上传结果，包含：
 *   - code: 状态码
 *   - message: 状态信息
 *   - data: 上传成功后的文件URL
 * @throws {Error} - 当上传失败时抛出错误
 */
export function uploadFile(file, fileType = 'image') {
  // 创建 FormData 对象用于文件上传
  const formData = new FormData()
  formData.append('file', file)
  formData.append('fileType', fileType)
  
  // 发送上传请求
  return request({
    url: '/fileService/fileController/upload',
    method: 'post',
    data: formData,
    headers: {
      'Content-Type': 'multipart/form-data'
    }
  })
} 